package com.system.user.enums;

/**
 * 枚举标准接口
 *
 * @author Administrator
 */
public interface StandardEnum {
    /**
     * 枚举的值
     *
     * @return
     */
    double val();

    /**
     * 枚举的中文名
     *
     * @return
     */
    String string();

    /**
     * 枚举的名称
     *
     * @return
     */
    String name();


    static StandardEnum empty = new StandardEnum() {
        @Override
        public String name() {
            return null;
        }

        @Override
        public double val() {
            return -1;
        }

        @Override
        public String string() {
            return null;
        }
    };

    static StandardEnum empty() {
        return empty;
    }

    /**
     * 判断是否是空枚举
     *
     * @return
     */
    default boolean isEmpty() {
        return this.equals(StandardEnum.empty());
    }

    /**
     * 返回枚举的byte值
     *
     * @return
     */
    default byte byteValue() {
        return (byte) val();
    }
}
